/**
 *
 */
package org.cmcc.pcap.jpcap.capture;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;


/**
 * @Date 2018年1月5日 上午10:04:04
 * @author Amish
 *
 */
public class TestStart {
	private static Logger logger = LogManager.getLogger(TestStart.class);
	/**
	 * @param args
	 */
	public static void main(String[] args) {


		//JCaptures jc = JCaptures.getInstance();
		JCaptures jc = new JCaptures("1");
		
		/**
		 * 测试网卡抓包
		 */	
		//jc.captureFromDevice("2CF0EE057A0A", ph);//抓包
		
		/**
		 * 测试 单个 文件抓包
		 */
		//jc.captureFromFile("cap/ipv6-esp-udp-sip--gm-fragment-2.pcap",ph);//读cap、pcap文件
		//jc.captureFromFile("cap/iot_asbc_5.1_call.pcap",ph);//读cap、pcap文件
		//jc.captureFromFile("cap/sctp-diameter-cx.pcap",ph);//读cap、pcap文件
		
		
		//jc.captureFromFile("cap/tcp-http-1.pcap",null);//读cap、pcap文件  包含tcp-http-2.pcap
		//jc.captureFromFile("cap/tcp-http-2.pcap",ph);//读cap、pcap文件  只有11个HTTP相关包。是tcp-http-1.pcap子集
		
		//jc.captureFromFile("cap/YingYongBao-9.pcap",null);//priority不生效的测试包
		//jc.captureFromFile("cap/AppStore_Download-5.pcap",null);//主线程提前结束的测试包,该包的FIN后面的包到底要不要？是否需要完善工作线程，清洗FIN后的包？
		//jc.captureFromFile("cap/alipay.pcap",null);//互联网XDR码流
		//jc.captureFromFile("cap/alipay-sub1.pcap",null);//互联网XDR码流
		//jc.captureFromFile("cap/Alipay-Sub1-sub1.pcap",null);//互联网XDR码流
		//jc.captureFromFile("cap/kuaishou.pcap",null);//互联网XDR码流
		//jc.captureFromFile("cap/JinRiTouTiao_Rule_ID80225.pcap",null);//互联网XDR码流
		//jc.captureFromFile("cap/KuaiShou_Rule_ID80483.pcap",null);//读cap、pcap文件//互联网XDR码流

		/**
		 * 测试 单个 文件抓包  —— 绝对路径
		 */
		jc.captureFromFile("E:\\test_pcap\\test0219\\alipay.pcap",null);
		//jc.captureFromFile("C:\\Users\\cmcc\\Desktop\\packet\\hw-allsub2-vlan-tcp.pcap",null);
		//jc.captureFromFile("D:\\lvpintemp\\all.pcap",null);
		//jc.captureFromFile("C:\\Users\\cmcc\\Desktop\\packet\\20180424\\AppStore_Download-5.pcap",null);
		//jc.captureFromFile("C:\\Users\\cmcc\\Desktop\\packet\\huawei\\baidu_uc_s1u_1.pcap",null);
		
		/**
		 * 测试多个文件抓包
		 */
		//String[] filePaths ={"cap/tcp-http-1.pcap","cap/tcp-http-2.pcap","cap/tcp-http-4-1.pcap"};
//		String[] filePaths ={"cap/tcp-http-1.pcap","cap/tcp-http-2.pcap"};
//		jc.captureFromFiles(filePaths,ph);
		
//		try {
//			Thread.sleep(20000);
//		} catch (InterruptedException e) {
//			// TODO 自动生成的 catch 块
//			e.printStackTrace();
//		}
//		
//		jc.captureFromFiles(filePaths,ph);
		
		/**
		 * 测试一个文件夹下   多个文件抓包
		 */
//		String dirPath ="cap";		
//		jc.captureFromDirectory(dirPath,ph);
		
		
		while(true){
//			if(jc.complete){//当所有文件处理完时，解除阻塞
			if(jc.tcp_complete && jc.udp_complete){
				break;
			}
			try {
				Thread.sleep(1000);
			} catch (InterruptedException e) {
				// TODO 自动生成的 catch 块
				e.printStackTrace();
			}
		}
		jc.stop();
	}
	
	

}
